package lambda01;

import org.junit.Test;

/**
 * 利用匿名内部类来创建一个线程,并且要使用Runnable接口
 * 匿名内部类:
 *   new 父类/父接口(){
 *      //重写父类或者父接口中的方法
 *   };
 *   1.底层会创建一个该父类或父接口的实现类
 *   2.接着在创建该父类或父接口实现类的对象
 *   Thread(Runnable target)
 *           分配新的 Thread 对象。
 */
public class LambdaDemo01 {
	@Test
	public void test01() {
        //1.创建Runnable接口子类对象
		Runnable r = new Runnable(){
			@Override
			public void run() {
				System.out.println(Thread.currentThread().getName()+"...Hello Thread");
			}
		}; //多态
		new Thread(r).start();
	}
	@Test
	public void test02() {
		//1.创建Runnable接口子类对象
		new Thread(new Runnable(){
			@Override
			public void run() {
				System.out.println(Thread.currentThread().getName()+"...Hello Thread");
			}
		}).start();
	}

	@Test
	public void test03() {
		new Thread(()->{System.out.println(Thread.currentThread().getName()+"...Hello Thread");}).start();
	}
}
